A microfiche appendix consisting of 10 microfiche and 971 frames, which sets forth source code for the Turbo Vision.RTM./Turbo Pascal.RTM. embodiment of the program is attached as a microfiche appendix to this specification, and the code of this program is incorporated in this application by reference thereto.
1. Field of the Invention
This invention relates to expert systems, as implemented on general purpose computers. More particularly, the invention relates to a computer program having an object oriented and graphic user-interface that enables a non-computer literate expert to build an expert system quickly, efficiently, and in accordance with the expert's own thought patterns and thinking processes, without need to conduct extensive interviews of the expert or to analyze the data summaries obtained therefrom.
2. Description of the Prior Art
Expert systems have been developed which enable many users, at diverse times and locations, to utilize the knowledge of an expert in the field of the user's endeavor.
Traditionally, these systems are developed through extensive interviews of the expert, which interviews are then transcribed and their content analyzed by one skilled in knowledge engineering. The content is formatted into a knowledge map which is then logically formatted into formal logic or a decision tree. Following the logical analysis of the data, the knowledge must then be converted to a computer accessible format, which often requires a computer programmer.
While there is great advantage in disseminating an expert's knowledge in a given area to a wide number of users, the cost of extracting the knowledge, formatting for computer storage and retrieval, and maintaining the knowledge to reflect current understandings is prohibitive for all but the largest applications, wherein the cost is amortized over a large number of users.
The expert system, when presented to a typical user, consists of a knowledge base and at least a database management program for displaying and updating the data which forms the knowledge base. One such system which uses an object oriented program language, and which manipulates and stores the objects in a common data format is disclosed in U.S. Pat. No. 4,989,132. In this disclosure, automatic management of the database is provided which is transparent to the user.
U.S. Pat. No. 4,945,476 discloses a knowledge based expert system having a plurality of case records with pointer linkages to pictorial files (pictures) stored in a separate database.
U.S. Pat. No. 4,972,343 discloses an updating technique for a knowledge base system which optimizes data searching after changes have been made to the database.
In recent years, particularly in the field of artificial intelligence, there have been developed expert systems which are able to utilize inferences, rules and objects to duplicate the expert's reasoning in factual circumstances not actually encountered by the expert, or to update the knowledge base as the expert system "learns" which solutions are correct. Typical examples of this type of system are disclosed in U.S. Pat. Nos. 4,970,658; 4,970,657 and 4,931,926. These references disclose a knowledge base containing "if-then-action" rules and an inference engine that includes an application interface means and a plurality of object processors. In these systems, each object processor has access to a set of variables defining an object. Rules are selected from the knowledge base and routed to the object processors having access to the objects referenced in the rule. In parallel processing configurations, each object processor executes on a processing unit and the rules are passed as messages.
However efficient these expert systems may be, they have not eliminated the high cost and delay inherent in structured formal interviews, and the preparation of a knowledge map by one skilled in knowledge engineering.
To date, there has not been available an expert system development tool that provides a convenient methodology for storing and retrieving information and that obviates the need for a knowledge engineer or computer literate interpreter to obtain and abstract the knowledge from the expert in the form of data and logic rules. The existing systems also require the services of a computer programmer to create a custom interface for the user of the expert system that will enable a non-sophisticated user to retrieve the knowledge contained therein.